home *** CD-ROM | disk | FTP | other *** search
-
- FcS >76751400 < Kontrollcode fuer Steuerungsdatei
- 0123456789012
- **********************************************************************
- ** Konverterdatei fuer die Quellsprache GFA-BASIC 3.5 Atari ST **
- ** nach GNU-C unter PC-Linux 1.0.9 unter Vorraussetzung einer schon **
- ** installierten VGALIB-Library (mind. Version 1.2) **
- ** und unter Nutzung eigener Prozeduren fuer die benoetigten **
- ** GFA-Basic-Befehle (oder einer vorhandenen Library, z. B. der **
- ** 'FSLIBGFA'-Library) **
- ** Diese Konverterdatei beinhaltet das automatische Erstellen eines **
- ** Makefiles fuer Linux und das Erstellen einer Datei mit dem Quell-**
- ** code, welcher aus einer anderen Sprache heraus uebersetzt wurde, **
- ** in unserem Fall aus GFA-Basic 3.5 heraus. **
- ** Als Quelldatei benoetigt mein T U N I X-(Tue Nichts-)Konverter **
- ** nur das Basicprogramm als *.LST Datei (Endung unwichtig, jedoch **
- ** ASCII-Format!! **
- ** Ziel des Konverters: Zielprogramm (C-Prg) ohne JEGLICHE manuelle **
- ** Anpassungen direkt compilierbar **
- ** Status des Konverters: Ziel absolut realisierbar, bis Heute ca. **
- ** 70%-iger Deckungsgrad des GFA-Basic 3.5- **
- ** Befehlssatzes erreicht, bis Ende 1995 **
- ** moeglichst nahe bei 100% **
- ** Status der Library : (FSLIBGFA) bis Heute ca. 60% erreicht, **
- ** jedoch hat der Anwender die Möglichkeit, **
- ** dringend benötigte Befehle selbst zu **
- ** ergänzen **
- ** Bemerkung: **
- ** 70% und 60% hoeren sich schlimmer an, als es ist, da damit fast **
- ** alle haeufig vorkommenden Befehle vollstaendig abgedeckt sind. **
- ** Beispiel: seit Anfang Mai 1995 konvertiert sich der Konverter **
- ** selbst 1:1 von 4503 GFA-Basic-Zeilen in 5118 C-Zeilen **
- ** und laesst sich ohne manuelle Aenderungen fehlerfrei **
- ** compilieren. Erscheinungsbild 100% identisch unter **
- ** Linux (Farben, Aufloesung, Grafik, Dateien), nur die **
- ** FILESELECT-Box (Eigenentwicklung) besitzt mein etwas **
- ** eigenwilliges Design. **
- ** Fuer Interessierte ist dieser Konverter fuer 90 DM zzgl. Mwst. **
- ** zu erhalten. (90 statt 55, derweil darin auch eine Supportunter- **
- ** stuetzung von mir (telefonisch/schriftlich) fuer die In- **
- ** stallation unter schwierigen/individuellen Linux-Konfigurationen **
- ** enthalten ist (abends MO-FR 19:00-20:00), schriftlich immer. **
- ** Fuer diejenigen, die sich sehr gut unter Linux auskennen (schon **
- ** Kernelergaenzungen, DOS-Emulatorveraenderungen oder X-Windows-C- **
- ** Programme erstellt/durchgefuehrt haben), gibts natuerlich den **
- ** Compiler fuer 55,- DM. (Dann jedoch keine Supportunterstuetzung) **
- ** Fehlermeldungen von allen Seiten sind erwuenscht: **
- ** Bitte kleinere Programme (10-50 Zeilen maximal) mir zukommen **
- ** lassen (schriftlich oder auf Diskette), welche nicht sauber **
- ** konvertiert werden. Fehler werden schnellstmoeglich behoben. **
- ** **
- ** Fuer dieses Jahr noch geplant: **
- ** - Die momentan fehlende GEM-/VDI-/AES-Routinen-Unterstuetzung **
- ** wird zukuenftig durch den Konverter in X-Windows-Unterstuetzung**
- ** umgewandelt (Vorraussetzung dann aber statt VGALIB1.2: Ygl- **
- ** Library!!) **
- ** **
- ** - Sobald GFA-Basic 3.5 abgedeckt ist, mache ich mich an Omikron **
- ** Basic **
- ** **
- **------------------------------------------------------------------**
- ** Fuer Neulinge im Linux-Bereich bzw. GNU-C-Bereich: **
- ** Komplette Entwicklungsumgebung Linux-System+GNU-C+VGALIB+Uties+ **
- ** Doku in Dateiform **
- ** gibts von mir auf momentan 12 Disketten ein Minimalsystem fuer **
- ** 25 DM,- Unkostenbeitrag (enthaelt Kosten fuer Disketten & **
- ** Kopieren & eine Installationsanleitung von mir (10 Seiten)) **
- ** Benoetigt werden mindestens: PC-486DX33, 8 MB, 60 MB frei **
- ** fuer Kaffeetrinker genuegt : PC-386SX16, 4 MB, 70 MB frei **
- ** MEINE EMPFEHLUNG JEDOCH (anstelle meiner Minimalausstattung): **
- ** a- wenn Ihr Englisch koennt: bestellt Euch: **
- ** 4er-Pack CD-Rom (ca 3.x GB entpackt) InfoMagic **
- ** Linux Developer's Ressource 39,- DM **
- ** b- fuer alle Deutschfreaks : bestellt Euch: **
- ** 3er-Pack CD-Rom (ca 2.x GB entpackt) S.u.S.E. **
- ** S.u.S.E. Linux (April '95 oder neuer) 89,- DM **
- ** a- & b- BEI: **
- ** S.u.S.E. GmbH Tel. 0911/7405331 Bestellannahme **
- ** Gebhardtstr. 2 **
- ** 90762 Fürth **
- ** Erkundigt Euch am Besten telefonisch nach den aktuellen Preisen! **
- **********************************************************************
- ** In dieser Konverterdatei werden alle Zeilen vom Konverter ig- **
- ** noriert, ausser denen, die mit **
- ** *01 bis *99 -> Sonderfunktionen **
- ** und , beginnen. -> Befehlsbeschreibungen **
- ** und Verarbeitungmethoden **
- **********************************************************************
- Byte 01..02: Prozedure-Nummer (-ID),wo gefunden
- Byte 03..03: LOCAL-Kennzeichen
- (=0: Keine mit LOCAL declarierte Variable)
- Byte 04..04: Vartyp
- vartyp&=0: Fließkomma
- =1: % (int long)
- =2: & (int)
- =3: ! (zeiger)
- =4: (float)
- =9: String
- =+100: ARRAY
- =+200: Selbst eine Prozedur
- Byte 05..24: Varname vorher
- kprg:
- .qdn.: Label fuer Quelldateiname (Automatik)
- .zdn.: Label fuer Zieldateiname (Automatik)
- .kdn.: Label fuer Konvertierungsdateiname (Automatik)
- .mdn.: Label fuer Makedateiname (Automatik)
- .edn.: Label fuer Ergebnisdateiname (Automatik)
- *mc: Microcodezeilen
- *mc.gbntcon. 0001. !Befehl zum Einschalten des Microcodeinterpreters
- *mc.gbntcoff.0002. !Befehl zum Ausschalten des Microcodeinterpreters
- *mc.set. 0003.
- *mc.qdn. 0021. !Quelldateiname
- *mc.zdn. 0022. !Zieldateiname
- *mc.kdn. 0023. !Konverterdateiname
- *mc.mdn. 0024. !Makefilename
- *mc.edn. 0025. !Ergebnisdateiname
- *mc.scrst. 0030. !Startaufloesung, =1: 640x200x16
- *mc.T. 0100. !Definiert Textbereich ab jeweiliger Position
- *mc.0gv. 0200. !zeile_globalvarst%=zz&+1
- *mc.0zm. 0201. !zeiger_main&=1
- *mc.0zn. 0202. !zeile_main%=zz&+1
- *mc.0zs. 0203. !zeilen_spalte%=2
- *mc.0zz. 0204. !zz&=0
- *mc.ona. 0300. !on after zeilen, nur wenn on after aktiviert
- *mc.onb. 0301. !on break zeilen, nur wenn on break aktiviert
- *mc.one. 0302. !on error zeilen, nur wenn on error aktiviert
- *mc.onv. 0303. !on every zeilen, nur wenn on every aktiviert
- *mc.Uqd. 0401. !UPPER$(quelldateiname$)
- *mc.Uzd. 0402. !UPPER$(zieldateiname$)
- *mc.Ued. 0405. !UPPER$(ergedateiname$)
- *mc.Lqd. 0421. !LOWER$(quelldateiname$)
- *mc.Lzd. 0422. !LOWER$(zieldateiname$)
- *mc.Led. 0425. !LOWER$(ergedateiname$)
- *mc.kvz. 0501. !v.kvz.&
- *mc.vtrp. 0502. !v.vtrp.&
- *mc.vzu. 0503. !z.vzu.& ASCII
- *mc.sop. 0504. !z.sop.&
- *mc.fkt. 0505. !z.fkt.&
- *mc.ekz. 0506. !v.ekz.& ASCII
- *mc.zv. 0507. !v.zv.&
- *mc.kvz. 0508. !v.kvz.&
- *mc.fkta. 0509. !v.fkta.&
- *mc.sond. 0510. !v.sond.&
- *mc.func. 0511. !v.func.&
- *mc.spec. 0512. !v.spec.&
- *mc.uprgz. 0512. !z.uprg.&
- *mc.uprg. 0512. !v.uprg.&
- *mc.sv001. 1001. !zeilen_spalte%
- *mc.sv002. 1002. !zeilen_spalte_danach%
- *mc.sv003. 1003. !zq&
- *mc.sv004. 1004. !zz&
- *mc.sv101. 1101. !ergebnis$
- *mc.sv102. 1102. !obj$
- *mc.sv103. 1103. !p$
- *mc.sv104. 1104. !obj$
- *mc.sv111. 1111. !lysekauf&
- *mc.sv112. 1112. !lysektyp$
- *mc.sv121. 1121. !ersatz$
- *mc.sv122. 1122. !zusatz$
- *mc.sv123. 1123. !typen$
- *mc.sv124. 1124. !vmaske$
- *mc.sv125. 1125. !nmaske$
- *02: Beschreibung der gueltigen Variablentypen und ihrer Kennung
- im Quell- und Zielcode
- 1.+2. Zeichen: 00-99: Variablentyp-Kennziffer
- 3. Zeichen: kennzeichnendes Zeichen dieses Variablentyps im
- im Quellcode
- 4. Zeichen: kennzeichnendes Zeichen im Zielcode
- 5.+6. Zeichen: Maske fuer Variablenaufbereitung (z.B. printf)
- ab 7. Zeichen: Zielcode fuer Variablendeklaration
- *03: Zeichenketten ALT <-> NEU, welche waehrend Konvertierung
- 1:1 ersetzt werden sollen, ALT und NEU sind durch ,, zu trennen
- *04: Beschreibung des zulaessigen Variablennamenaufbaus bzw.
- Befehlsnamenaufbaus
- jedes zulaessige Zeichen wie folgt definiert:
- 1. Zeichen: =1: ab erstem Zeichen des Namens zulaessig
- =2: erst ab zweitem Zeichen des Namens zulaessig
- =3: nur als letztes Zeichen des Namens zulaessig
- 2. Zeichen: zulaessiges Zeichen Quellcode
- 3.(+4.) Z.: zulaessige(s) Zeichen Zielcode
- ->mehrere Definitionen koennen durch ,, voneinander getrennt werden
- *vs.0zz./* Quellprogramm GFA-BASIC: .Uqd. */
- *vs/* Zielprogramm C : .Lzd. */
- *vs
- *vs#include "fslibgfa.h"
- *vs
- *vsextern unsigned char *gfapars[];extern double gfaparn[];
- *vsunsigned char *gfazki;
- *vs
- *vsint gfaindex=0;
- *vsdouble gfan=0;
- *vsunsigned char *gfas;
- *vs.0gv.
- *vs.0zm.
- ===>*F002: An dieser Stelle die Array- und Variableninitialisierung einfuegen
- *vsvoid main()
- *vs{ /* Start von Main */
- *vs.0zs.gfa_open();
- *vsSCREEN(.scrst.);
- ===> Ab dieser Zeile alles um <N>=2 Zeichen weiter nach rechts
- *vsgfas=GFAIS(0);gfazki=malloc(256);
- *vs
- *vs.0zn.
- *vsSHOWM();
- ===> Ab dieser Zeile generierten Programmcode einfuegen
- ===> Ab der naechsten Zeile NACHSPANN
- *ns.0szs2.
- *nsgfa_close();
- *ns.0szs2.
- *ns} /* Ende von Main */
- *ns.ona.void gfaonafter()
- *ns.ona.{
- *ns.ona.}
- *ns.onb.void gfaonbreak()
- *ns.onb.{
- *ns.onb.}
- *ns.one.void gfaonerror()
- *ns.one.{
- *ns.one.}
- *ns.onv.void gfaonevery()
- *ns.onv.{
- *ns.onv.}
- ===> *mf: Definition eines Makefiles
- *mfBINDIR = /usr/bin
- *mfCC = gcc
- *mfMAKE = make
- *mfCFLAGS = -O2
- *mfSTRIP = -s
- *mfTEST_LIBS = -lvga -lm
- *mfall : test
- *mfTEST_OBJS = test.o fslibgfa.o fspecial.o
- *mftest : $(TEST_OBJS)
- *mf $(CC) $(STRIP) $(CFLAGS) -o test $(TEST_OBJS) $(TEST_LIBS)
- *mfinstall : all
- *mf install -m 4511 test $(BINDIR)
- *mf chmod a+r /dev/tty0
- *mfclean :
- *mf rm -f test.o *~ test
- *mffspecial.o : fspecial.c fspecial.h
- *mftest.o : test.c fslibgfa.h
- *mf
- *0200--%s
- *0201%L%dlong
- *0202&I%dint
- *0203!B%dint
- *0204FF%ffloat
- *0209$S%sunsigned char *
- *03popen(,,popeni(
- *03pclose(,,pclosei(
- ===> *04x: Ab x. Zeichen zulaessige Zeichen fuer Var.-/Proc.-Namen
- x=3 jedoch: letztes Zeichen
- jeweils 2 Zeichen, 1.=Quell- und 2.=Zielcode
- ===> *041: Ab 1. Zeichen zulaessige Zeichen fuer Var.-/Proc.-Namen
- *041aa,,bb,,cc,,dd,,ee,,ff,,gg,,hh,,ii,,jj,,kk,,ll,,mm
- *041nn,,oo,,pp,,qq,,rr,,ss,,tt,,uu,,vv,,ww,,xx,,yy,,zz
- *041AA,,BB,,CC,,DD,,EE,,FF,,GG,,HH,,II,,JJ,,KK,,LL,,MM
- *041NN,,OO,,PP,,QQ,,RR,,SS,,TT,,UU,,VV,,WW,,XX,,YY,,ZZ
- ===> *042: Ab 2. Zeichen zulaessige Zeichen fuer Var.-/Proc.-Namen
- ===> *043: letztes Zeichen eines Variablen-/Befehlsnamens
- ===> *044: Sonderzeichen, welches ein eigenes Objekt darstellt
- *043 A !A032: 3. Zeichen=1: Sonderzeichen, welches Klammerzu bewirkt
- *042!!H !A033: 11. Zeichen=1: Beginn Kommentar
- *044""JVC !A034: 11. Zeichen=2: Beginn Zeichenkette
- *044##G- !A035: 9. Zeichen=1: ersetzen durch 10. Zeichen
- *042$$GS !A036: 9. Zeichen=1: ersetzen durch 10. Zeichen
- *042%% !A037: 9. Zeichen=2: ersetzen durch >< (nichts)
- *042&& !A038
- *044''H !A039
- *044((CLS0
- *044))ACM
- *044**AN*& !A042 7=Sonderroutine * bei Normal, & bei Zeiger
- *044++AUDOE !A043
- *044,,ACPKET !A044
- *044--AG- !A045
- *042._AIV !A046 11. Zeichen=2: Zahl oder Microbefehlsbeginn
- *044//AQHE !A047
- *04200IV !A048
- *04211IV !A049
- *04222IV !A050
- *04233IV !A051
- *04244IV !A052
- *04255IV !A053
- *04266IV !A054
- *04277IV !A055
- *04288IV !A056
- *04299IV !A057
- *044::G: !A058
- *044;;AET !A059
- *044<<BCDFE !A060
- *044==ABCDFE !A061:
- *044>>BCDFE !A062
- *044??G_ !A063
- *044@@S1 !A064: 12. Zeichen=2: Funktionsbeginn(=1)
- *044^^Z111Z201Z101 !A094: 11. Zeichen=4: Potenzieren
- *042__A !A095
- 11. Zeichen=6: Klammerzuroutine
- 7. Zeichen=1: Typen-Abstellung in kysektyp$()
- 11. Zeichen=5: varpar&-Abhaengige Zeichenkette 0:(,1:(,
- 2:(,3:_[,4:(,...
- 12. Zeichen=1: Funktionsbeginn=0
- 5. Zeichen=1: V-Befehlspruefung bei Bedingung
- 6. Zeichen=1: V-Befehlspruefung bei Bedingung
- 7. Zeichen=1: L-Zuweisung bei Nicht-Bedingung
- *6001 !-> Startaufloesung des Zielprogramms, 01=640x200x16 Farben
- *70[
- *71]
- *72(
- *73)
- ===>Beginn Kommentarteil einer Zeile
- *80/*
- ===>Ende Kommentarteil einer Zeile
- *81*/
- ===>Beginn Zeilennummernteil einer Zeile
- *82/*Z
- ===>Ende Zeilennummernteil einer Zeile
- *83*/
- ===>Fliesskommazeichen
- *84.
- *85<>= .1=.9==.1<>.9!=.1=>.9>=.1=<.9<=.
- *86+= L( ,
- *87+ V( "",
- *88( ( ( _[( (
- ===>*91: Befehlsendekennzeichen fuer Zielcode ;
- *91;
- ===>*92: Alternative fuer \
- *92/
- ===>*93: Zeiger, ob ohne (=0) oder mit (=1) Protokolldatei <fspx.txt>
- Datei muss manuell geloescht werden (mit KILL fspx.txt)
- *930
- ===>*94: Satzende Zeichen fuer Zieldateisaetze (010 bei UNIX, normal 010013)
- *94010
- ===>*95: Sichtbare Buttons, 1=SICHTBAR&EIN, 0=NICHT SICHTBAR, 2=AUS
- *951000000012
- ===>*96: Debugmodus (1.+2. Zeichen); Debugpositionen ab 3. Zeichen
- *9607000022232222
- *99GFA-BASIC ST 3.5 nach GNU-C Linux 1.0.9 mit VGALIB
- =====================================================================
- ,000SA
- ,000SL
- ,000IV
- ,050LDIV ,,Z-----+
- ,050LMOD ,,Z-----+
- ,050LXOR ,,Z-----+
- ,050LIMP ,,Z-----+
- ,050LEQV ,,Z-----+
- ,051SINPUT$
- ,052SMID$,,Z----------03
- *** BEFEHLE: ***
- ,049-LINE ##_($INPUT,,Z-----)
- ,049-FORM ##_($INPUT,,Z-----)
- ,017-DEFAULT##break;,,Z------------21
- ,017-DEFAULT ##break;,,Z------------21
- ,055-STOP
- ===>056: wenn 2. Zeichenfolge nicht vorhanden in Zeile, dann wird ein
- '{'-Zeichen angehaengt, ansonsten nichts
- ,056-ELSE##IF,,Z 331
- ,056-ELSE ##IF,,Z 331
- ,057-CASE ##3,,Z
- ,058-DATA
- ,059-MENU
- ,060-RETURN##}..return ,,Z-22----2
- ,060-RETURN ##}..return ,,Z-22----2
- ,061-ENDFUNC
- ,061-ENDFUNC
- ,062-ENDSELECT##3
- ,062-ENDSELECT ##3
- ===>063: Nach ##:
- 1.+2. : n2 Unter-Funktionsnummer
- 3.-8. : n3 MaxAnzahl-Basis
- ,063-FUNCTION ,,Z-21----2----11--2
- ,063-PROCEDURE ,,Z-21----2----12--1
- ----------------------------------------------------------------------
- Ab ,,Z werden die Zusatzkennzeichen hinterlegt (bei allen Befehlen):
- NACHFOLGEND: =-: Kennzeichen/Feld wird uebergangen
- 1. Z.: =.ekz. : Endekennzeichen (normalerweise ;)
- 2. Z.: =.zv. : Anzahl zu verschiebender Zeichen 0-9
- 3. Z.: =.kzv. =0: Keine SpaltenZeichenVerschiebung
- =.kzv. =1: Nach aktueller Zeile RECHTS-Schiebung um .zv.> Zeichen
- =.kzv. =2: Vor aktueller Zeile LINKS-Schiebung um <.zv. Zeichen
- =.kzv. =3: sowohl <.zv. als auch .zv.>
- =.kzv. =4: .zv. wird direkt der aktuellen Spalte zugewiesen
- 4. Z.: =.b. =0: Keine Bedingungszeile (aus = wird =)
- =.b. =1: Eine Bedingungszeile (aus = wird ==)
- 5. Z.: =.lzd. : Anzahl direkt einzufuegender Leerzeichen vor dem Befehl
- 6. Z.: =.kka. =0: Kennzeichen, dass eine ]-Klammer zu schliessen ist
- vor dem naechsten Zeichen aus ')-+*/,;<>= '
- =1: Kennzeichen, dass eine )-Klammer zu schliessen ist
- vor dem naechsten Zeichen aus ')-+*/,;<>= '
- =2: Kennzeichen, dass eine )-Klammer zu schliessen ist,
- sobald die aktuelle Zeile konvertiert wurde.
- 7. Z.: =.vtrp.=x: x=0..9: Anzahl Zeichen, um die versetzt der Typ
- der naechsten Variablen im aktuellen Befehl zu
- plazieren ist.
- 8. Z.: =.fkta.=x: x. AllgemeinFunktion A wird ausgefuehrt:
- =1: letzter Parameter wird zusatzlich als aufnehmende
- Variable an den Zeilenanfang kopiert
- => aus Prozedur eine Funktion machen, Bsp.:
- aus FORM INPUT 20 AS a$
- wird aS=FORM_INPUT(20,aS)
- =C: Aktueller Befehlsname wird geloescht
- 9. Z.: =.sond.=1: .funk.=1 -> Sonderfunktion1
- =2: .spec.=1 -> Sonderfunktion2
- 10. Z. : CLR obj$
- 11.+12. =.sop. x: Anzahl Sollparameter der Funktion
- wenn < 0, werden fehlende mit -1 ergaenzt
- wenn > 0, werden fehlende mit 0 ergaenzt
- 13.+14. =.fkt. : Sonderfunktion
- 15. .kkb. : 6.
- 16. .cka. : CLR kanalat$
- 17. .uprgz. : 1: Procedure aktiv, 2: Function aktiv => v.uprg.&
- ----------------------------------------------------------------------
- ===>001: Die erste Zeichenkette wird, wo gefunden, durch die zweite
- ersetzt und ans Ende der Zeile angehaengt.
- ,001-DEC ##--,,Z;------C,,T(1234)
- ,001-EXIT##break; },,Z-36----C
- ,001-EXIT ##break; },,Z-36----C
- ,001-INC ##++,,Z;------C,,T(1234)
- ,001LVARPTR##,,Z-------C
- ,002-pclose##pclosei
- ,002-popen##popeni
- ,002-AT##AT,,Z-------C
- ,002-BOUNDARY ##BOUNDARY(,,Z-----)
- ,002-CIRCLE ##CIRCLE(,,Z-----)
- ,002-CLOSE ##CLOSE(,,Z-----+
- ,002-CLOSEW ##CLOSEW(,,Z-----+
- ,002-CLS ##CLS()
- ,002-COLOR ##COLOR(,,Z-----+
- ,002SDATE$##DATE()
- ,002SDATE$ ##DATE()
- ,002-DEFMOUSE ##DEFMOUSE(,,Z-----+
- ,002-EDIT##EDIT()
- ,002-ELLIPSE ##ELLIPSE,,Z----------06
- ,002IEOF##EOF_
- ,002-FULLW ##FULLW(,,Z-----+
- ,002-GRAPHMODE ##GRAPHMODE(,,Z-----+
- ,002SINKEY$##INKEY()
- ,002SINKEY$ ##INKEY()
- ,002IINSTR##INSTR,,Z-------C--03
- ,002-KILL ##KILL(,,Z-----+
- ,002-LOCATE ##LOCATE(,,Z-----+
- ,002-LOOP##} while (1!=2),,Z-32
- ,002-LOOP ##} while (1!=2),,Z-32
- ,002-LSET ##LSET(,,Z-----+
- ,002IMOUSEK##MOUSEK()
- ,002IMOUSEK ##MOUSEK()
- ,002IMOUSEX##MOUSEX()
- ,002IMOUSEX ##MOUSEX()
- ,002IMOUSEY##MOUSEY()
- ,002IMOUSEY ##MOUSEY()
- ,002-MUL ##MUL7(&,,Z-----+2
- ,002LNOT ##NOT(,,Z-----+
- ,002-OPENW ##OPENW(,,Z-----+
- ,002-OUT ##OUT(,,Z-----)
- ,002-PAUSE ##PAUSE(,,Z-----+
- ,002-PCIRCLE ##PCIRCLE(,,Z-----)
- ,002-PEEK##*
- ,002-PELLIPSE ##PELLIPSE,,Z----------06
- ,002FPI##PI0()
- ,002-QSORT ##QSORT(,,Z-----)
- ,002-RECALL ##RECALL(,,Z-----)---&
- , ,,M.,.,.,.vzu.
- ,002-REPEAT##do {,,Z 21
- ,002-REPEAT ##do {,,Z 21
- ,002-RSET ##RSET(,,Z-----+
- ,002-SEEK ##SEEK(,,Z-----)
- ,002-SETCOLOR ##SETCOLOR(,,Z-----)
- ,002-THEN##) {,,Z------------------1
- ,002-THEN ##) {,,Z------------------1
- ,002STIME$##TIME()
- ,002STIME$ ##TIME()
- ,002LTIMER##TIMER()
- ,002LTIMER ##TIMER()
- ,003-INPUT##INPUT(,,Z-----)-C----14#C
- ,003-INPUT ##INPUT(,,Z-----)-C----14#C
- ===>004: Ergaenzt Zeichenfolge direkt vor Befehl:
- ,005-ADD ##+=
- ,005-SUB ##-=
- ,006-LPRINT##LPRINT(,,Z-----)-C----20#C
- ,006-LPRINT ##LPRINT(,,Z-----)-C----20#C
- ,006-PRINT##PRINT,,Z-------C----17#C
- ,006-PRINT ##PRINT,,Z-------C----17#C
- ,006-WRITE##WRITE(,,Z-----)-C----20#C
- ,006-WRITE ##WRITE(,,Z-----)-C----20#C
- ,007-ON ##MENU..ON_..switch (..) {
- , ,,Z-------2-----C
- ,009LAND ##041#&&
- ,009LOR ##041|##||
- ===>010: eventuelle Bedingungszeile
- ,010-IF## THEN,,Z 311
- ,010-IF ## THEN,,Z 311
- ===>011: Nach ##: 1.-3. Zeichen: < 256 = ASC-CODE-AUSFUEHRUNG
- >=256 = Sonderroutine
- ab 4. Zeichen: Zeichenfolge, welche vor aktueller
- Zeile eingefuegt wird.
- ,011-REM##!,,Z-------C
- ,011-REM ##!,,Z-------C
- ,012-FOR##,,Z 31---------07
- ,012-FOR ##,,Z 31---------07
- ,014-GOSUB ##) {
- ,015-LOCAL ,,Z-------C
- ,016-WHILE ##while (,,Z 211 )
- ===>099: Befehl wird 1:1 durchgelassen ins Zielprogramm
- ,099FABS
- ,099LADD
- ,099IASC
- ,099SBIN$,,Z----------02
- ,099SCHR$
- ,099FCVD
- ,099FCVF
- ,099ICVI
- ,099LCVL
- ,099IEXIST
- ,099LFIX
- ,099-FN ##,,Z-------C1
- ,099FFRAC
- ,099LFRE
- ,099SHEX$,,Z----------02
- ,099IINP
- ,099LINT
- ,099SLEFT$
- ,099ILEN
- ,099LLOF
- ,099LMAX
- ,099IMENU
- ,099LMIN
- ,099SMKD$
- ,099SMKF$
- ,099SMKI$
- ,099SMKL$
- ,099LMUL
- ,099SOCT$,,Z----------02
- ,099-OPEN ,,Z----------04
- ,099IPOINT
- ,099LRANDOM
- ,099-READ ,,Z-------C----18
- ,099SRIGHT$
- ,099FROUND
- ,099ISGN
- ,099SSPACE$
- ,099FSQR
- ,099SSTR$,,Z----------03
- ,099SSTRING$
- ,099LSUB
- ,099STRIM$
- ,098SUPPER$
- ,099LXBIOS
- ,099FVAL
- ,002-VAR ##VAR ,,Z--------2
- ,099-XBIOS,,Z-----------3
- --------nachfolgend abgeschlossene Befehle---------------------------
- ===>002: Wie 002, jedoch wird zusaetzlich eine Funktion ausgefuehrt
- => Funktionsnummer: Zeichen 1.-3. der Zeichenfolge nach ##
- ===>002: 1. Zeichenfolge wird durch 2. ab Zeichen 4 ersetzt.
- zusaetzlich wird Sonderfunktion xx ausgefuehrt.
- ===>002: Die erste Zeichenfolge wird, wo gefunden, vollstaendig durch
- die zweite ersetzt.
- ,002-ALERT ##ALERT(
- , ,,Z-----)---&
- , ,,T(12)(9)(12)(9)(12)
- , ,,M..,..,..,..,.vzu.
- ,002-AS ##,
- ,002-BOX ##BOX(
- , ,,Z-----)
- , ,,T(12)(12)(12)(12)
- ,002-DIM ##,,Z-------C----04,,T
- ,002-DIV ##DIV0(&
- , ,,Z-----)
- , ,,T(12)(12)
- ,002-DO##do {,,Z 31
- ,002-DO ##do {,,Z 31
- ,002-END##exit(0)
- ,002-END ##exit(0)
- ,002-ENDIF##},,Z 320--------06,,T
- ,002-FILESELECT ##FILESELECT(
- , ,,Z------------15
- , ,,T(9)(9)(9)
- ,002SGET ##GETB(
- , ,,Z-----)-1
- , ,,T(12)(12)(12)(12)(9)
- SGET:erste Zeichenfolge wird durch 2. Zeichenfolge ersetzt, zu-
- saetzlich wird der letzte Parameter der Zeile als Ziel-
- Parameter genommen.
- Beispiel: aus GET 0,0,639,199,bgs$
- wird bgsS=GETB(0,0,639,199,bgsS)
- ,002SSGET ##SGETB(
- , ,,Z-----)-1
- , ,,T(9)
- SSGET:erste Zeichenfolge wird durch 2. Zeichenfolge ersetzt, zu-
- saetzlich wird der letzte Parameter der Zeile als Ziel-
- Parameter genommen.
- Beispiel: aus SGET bgs$
- wird bgsS=SGETB(bgsS)
- ,002-GOTO ##goto ,,Z------------13
- ,002-NEXT##},,Z 320--------06,,T
- ,002-NEXT ##},,Z 320--------06,,T
- ,002-PBOX ##PBOX(
- , ,,Z-----)
- , ,,T(12)(12)(12)(12)
- ,002-PLOT ##PLOT(
- , ,,Z-----)
- , ,,T(12)(12)
- ,002-PUT ##PUTB(
- , ,,Z-----)
- , ,,T(12)(12)(9)
- ,002-SPUT ##SPUTB(
- , ,,Z-----)
- , ,,T(9)
- ,002-SELECT ##,,Z ------C----19,,T(12349)
- ,002-SWAP ##,,Z-------C----05,,T(12349)(12349)
- ,002-SWITCH ##,,Z ------C----19,,T(12349)
- ,002-TEXT ##TEXT0(
- , ,,Z-----)
- , ,,T(12)(12)(9)
- ,002-UNTIL ##} while (!(
- , ,,Z-221-)--------2--)
- , ,,T(1234)
- ,002-WEND##},,Z 220--------06,,T
- ,007-MOUSE ##%..MOUSEl(..MOUSE(
- , ,,Z-----)-2-&
- , ,,M.vzu.,.vzu.,.vzu.
- , ,,T(1234)(1234)(1234)
- ===>008: Aktueller Befehl wird zum Wiederholungsbefehl fuer die
- folgenden Parameter:
- aus CLR a&,b&,c& wird CLR(aI);CLR(bI);CLR(cI);
- ,008-CLR ##2=0,,Z------------03,,T(12345)
- ===>013: wie 012, jedoch nur fuer RESTORE.
- ,013-RESTORE ##gfaindex=0; ,,Z-------C----16
- ,099FCOS,,T(4)
- ,099FCOSQ,,T(4)
- ,099-STORE ,,Z----------03
- ,099-DEFFILL ,,Z-----------4,,T(12)(12)(12)(12)
- ,099-DEFLINE ,,Z-----------4,,T(12)(12)(12)(12)
- ,099-DEFTEXT ,,Z-----------5,,T(12)(12)(12)(12)(12)
- ,099-POLYFILL ,,Z----------05,,T(12)(12)(12)(12)(12)
- ,099FSIN,,T(4)
- ,099FSINQ,,T(4)
- Sonderfunktionen:
- =1 : DATA-ZEILEN
- =2 : LOCAL
- =3 : CLR
- =4 : DIM
- =5 : SWAP
- =6 : NEXT
- =7,8,9: FOR
- =10 : GOSUB
- =11,12: FUNCTION
- =13 : GOTO
- =14 : INPUT
- =15 : FILESELECT
- =16 : RESTORE
- =17 : PRINT
- =18 : READ -> DATAZEILEN
- =19 : SELECT
- =20 : WRITE
- =21 : DEFAULT
- =255 : DATA-ZEILEN
-